using System;

namespace Pegasus.Workflow.Service
{
	/// <summary>
	/// Interface for having the serivce interaction with the runtime environment
	/// </summary>
	public interface IWorkflowService
	{
		/// <summary>
		/// Gets the workflow service that this service is attached to.
		/// </summary>
		/// <value>The workflow service.</value>
		WorkflowService WorkflowService
		{
			get;
		}

		/// <summary>
		/// Starts this instance of the service.
		/// </summary>
		/// <param name="workflowService">The workflow service that owns this service.</param>
		void Start( WorkflowService workflowService );

		/// <summary>
		/// Stops this instance of the service.
		/// </summary>
		void Stop();
	}
}
